From f4f0f0e6a0488146518266e20d07eb37aeb9b558 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 11 Jan 2019 10:05:44 +0100 Subject: [PATCH] snapshot: Get new GArray item directly Instead of building it up ourselves, then coping it into the GArray and then getting the last element of that array. --- gtk/gtksnapshot.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gtk/gtksnapshot.c b/gtk/gtksnapshot.c index 81e7419207..3bc18cd4e8 100644 --- a/gtk/gtksnapshot.c +++ b/gtk/gtksnapshot.c @@ -112,17 +112,19 @@ gtk_snapshot_push_state (GtkSnapshot *snapshot, int translate_y, GtkSnapshotCollectFunc collect_func) { - GtkSnapshotState state = { 0, }; + const gsize n_states = snapshot->state_stack->len; + GtkSnapshotState *state; - state.translate_x = translate_x; - state.translate_y = translate_y; - state.collect_func = collect_func; - state.start_node_index = snapshot->nodes->len; - state.n_nodes = 0; + g_array_set_size (snapshot->state_stack, n_states + 1); + state = &g_array_index (snapshot->state_stack, GtkSnapshotState, n_states); - g_array_append_val (snapshot->state_stack, state); + state->translate_x = translate_x; + state->translate_y = translate_y; + state->collect_func = collect_func; + state->start_node_index = snapshot->nodes->len; + state->n_nodes = 0; - return &g_array_index (snapshot->state_stack, GtkSnapshotState, snapshot->state_stack->len - 1); + return state; } static GtkSnapshotState * -- 2.30.2